package command

import (
	"codejy/structdef"
	"codejy/typedefault"
	"flag"
)

type DocShowCmd struct {
	doc      string //主文件路径
	priority int    //优先级
}

func init() {
	RegisterCommand(&DocShowCmd{
		priority: 2,
	})
}

// 绑定
func (m *DocShowCmd) Bind() {
	flag.StringVar(&m.doc, m.GetName(), "", m.GetDesc())
}

// 满足条件才执行命令
func (m *DocShowCmd) Condition() bool {
	return m.doc != ""
}

// 执行命令
func (m *DocShowCmd) Execute(threadStore *structdef.ThreadStore) {
	typedefault.TypedefaultDoc(m.doc)
}

// 获取命令名称
func (m *DocShowCmd) GetName() string {
	return "doc"
}

// 获取命令描述
func (m *DocShowCmd) GetDesc() string {
	return "打印系统核心类型文档,例如: -doc=Str"
}

// 优先级  ,0最低...
func (m *DocShowCmd) GetPriority() int {
	return m.priority
}

// 是否终止
func (m *DocShowCmd) IsExit() bool {
	return true
}
